package com.example.demo.config;

import org.springframework.web.servlet.HandlerInterceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 * @Author YuanYuan
 * @Date 2024/5/6
 * @Time 19:59
 */
public class LoginInterceptor implements HandlerInterceptor  {
    

    /**
     *
     * 自定义拦截器
     * 此方法返回一个boolean，如果true 表示验证成功，可以继续执行后续流程
     * 如果时 false 表示验证失败，后续流程不能执行了
     *
     * @return boolean
    */
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        //用户登陆业务判断
        //当session不存在时，不需要创建会话信息（false）
        HttpSession session = request.getSession(false);
        if (session!=null && session.getAttribute("userinfo")!=null){
            //说明用户已经登陆
            return true;
        }
        //如未登录，可以直接跳转到登录页面，或者返回401/403 没有权限码
        response.sendRedirect("/login.html");
//        response.setStatus(401);
        return HandlerInterceptor.super.preHandle(request, response, handler);
    }
}
